implement missing get_cells method. (Spotted by Paolo Borelli).
authorKristian Rietveld <kris@gtk.org>
Fri, 7 Sep 2007 11:02:04 +0000 (11:02 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Fri, 7 Sep 2007 11:02:04 +0000 (11:02 +0000)
2007-09-07  Kristian Rietveld  <kris@gtk.org>

* gtk/gtkcombobox.c (gtk_combo_box_cell_layout_init),
(gtk_combo_box_cell_layout_get_cells): implement missing get_cells
method.  (Spotted by Paolo Borelli).

svn path=/trunk/; revision=18747

ChangeLog
gtk/gtkcombobox.c

index 0fdd4b9808b72748ce11b26180ec93cad5e2b690..fab6466cee615dfe1d820a8f36d9c3d9826915c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-07  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcombobox.c (gtk_combo_box_cell_layout_init),
+       (gtk_combo_box_cell_layout_get_cells): implement missing get_cells
+       method.  (Spotted by Paolo Borelli).
+
 2007-09-06  Matthias Clasen  <mclasen@redhat.com>
 
        * configure.in: Check for cups.h.  (#459732, Guillaume Cottenceau)
index 6a440ff16169b83ec4fe6c93ed052e6a436e94c8..a8e4949d8a05cf695ec39cdfb08c8f10389c3ad6 100644 (file)
@@ -408,6 +408,7 @@ static void     gtk_combo_box_cell_layout_pack_start         (GtkCellLayout
 static void     gtk_combo_box_cell_layout_pack_end           (GtkCellLayout         *layout,
                                                               GtkCellRenderer       *cell,
                                                               gboolean               expand);
+static GList   *gtk_combo_box_cell_layout_get_cells          (GtkCellLayout         *layout);
 static void     gtk_combo_box_cell_layout_clear              (GtkCellLayout         *layout);
 static void     gtk_combo_box_cell_layout_add_attribute      (GtkCellLayout         *layout,
                                                               GtkCellRenderer       *cell,
@@ -878,6 +879,7 @@ gtk_combo_box_cell_layout_init (GtkCellLayoutIface *iface)
 {
   iface->pack_start = gtk_combo_box_cell_layout_pack_start;
   iface->pack_end = gtk_combo_box_cell_layout_pack_end;
+  iface->get_cells = gtk_combo_box_cell_layout_get_cells;
   iface->clear = gtk_combo_box_cell_layout_clear;
   iface->add_attribute = gtk_combo_box_cell_layout_add_attribute;
   iface->set_cell_data_func = gtk_combo_box_cell_layout_set_cell_data_func;
@@ -4129,6 +4131,27 @@ gtk_combo_box_cell_layout_pack_end (GtkCellLayout   *layout,
     pack_end_recurse (combo_box->priv->popup_widget, cell, expand);
 }
 
+static GList *
+gtk_combo_box_cell_layout_get_cells (GtkCellLayout *layout)
+{
+  GSList *list;
+  GList *retval = NULL;
+  GtkComboBox *combo_box;
+
+  g_return_val_if_fail (GTK_IS_COMBO_BOX (layout), NULL);
+
+  combo_box = GTK_COMBO_BOX (layout);
+
+  for (list = combo_box->priv->cells; list; list = list->next)
+    {
+      ComboCellInfo *info = (ComboCellInfo *)list->data;
+
+      retval = g_list_prepend (retval, info->cell);
+    }
+
+  return g_list_reverse (retval);
+}
+
 static void
 clear_recurse (GtkWidget *menu)
 {